840A - Leha and Function - CodeForces Solution


combinatorics greedy math number theory sortings *1300

Please click on ads to support us..

Python Code:

n = int(input())
a = [int(i) for i in input().split()]
b = [int(i) for i in input().split()]

d = dict()
for j in range(n):
    if b[j] not in d:
        d[b[j]] = []
    d[b[j]].append(j)
a1 = sorted(a)[::-1]
b = sorted(b)
for i in range(n):
    ind = d[b[i]].pop()
    a[ind] = a1[i]
print(*a)

C++ Code:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

bool cmp(pair<int,int> p1,pair<int,int> p2){

   return p1.second<p2.second;
}

bool rcmp(pair<int,int> p1,pair<int,int> p2){

   return p1.second<p2.second;
}

int main(){

   ll n;
   cin>>n;

   vector<int> v_a;
   vector<pair<int,int>> v_b;

   for(ll i=0;i<n;i++){
      ll x;
      cin>>x;

      v_a.push_back(x);
   }

   for(ll i=0;i<n;i++){
      ll y;
      cin>>y;

      v_b.push_back(make_pair(i,y));
   }

    sort(v_a.begin(),v_a.end(),greater<int>());
    sort(v_b.begin(),v_b.end(),cmp);
     
     ll x[n];
    for(ll i=0;i<n;i++){
         
         x[v_b[i].first]=v_a[i];
       }

       for(ll i=0;i<n;i++){

         cout<<x[i]<<" ";
       }
}


Comments

Submit
0 Comments
More Questions

492A - Vanya and Cubes
217A - Ice Skating
270A - Fancy Fence
181A - Series of Crimes
1638A - Reverse
1654C - Alice and the Cake
369A - Valera and Plates
1626A - Equidistant Letters
977D - Divide by three multiply by two
1654B - Prefix Removals
1654A - Maximum Cake Tastiness
1649A - Game
139A - Petr and Book
1612A - Distance
520A - Pangram
124A - The number of positions
1041A - Heist
901A - Hashing Trees
1283A - Minutes Before the New Year
1654D - Potion Brewing Class
1107B - Digital root
25A - IQ test
785A - Anton and Polyhedrons
1542B - Plus and Multiply
306A - Candies
1651C - Fault-tolerant Network
870A - Search for Pretty Integers
1174A - Ehab Fails to Be Thanos
1169A - Circle Metro
780C - Andryusha and Colored Balloons